package net.suplementos.dao;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.EntityManager;

import net.suplementos.exception.DAOException;
import net.suplementos.pojo.Cliente;

public class ClienteDAO extends JPAAbstractDAO<Cliente, Integer> {

	public ClienteDAO(EntityManager manager) throws DAOException {
	    super(manager);
	}

	protected Class<Cliente> doGetClass() {
		return Cliente.class;
	}
	
	public List<Cliente> consultar(Cliente cliente) throws DAOException {
       	StringBuilder hql = new StringBuilder("select c from Cliente c where 1 = 1 ");
       	List<Object> parametros = new ArrayList<Object>();

    	if (cliente.getId() != null) {
    		hql.append("and c.id = ?");
    		parametros.add(cliente.getId());
    	}
    	if (cliente.getNome() != null && !cliente.getNome().trim().equals("")) {
    		hql.append("and c.nome like ?");
    		parametros.add("%" + cliente.getNome() + "%");
    	}
    	if (cliente.getCpf() != null&& !cliente.getCpf().trim().equals("")) {
    		hql.append("and c.cpf = ?");
    		parametros.add(cliente.getCpf());
    	}

    	return consultar(hql.toString(), parametros.toArray(new Object[parametros.size()]));
	}
}
